#include <iostream>
#include <algorithm> //算法有关的头文件
#include <vector> 

using namespace std;

/*
	throw抛出来的异常，必须使用try-catch语句来处理
	try-catch语句总结成公式
	    try
		{
			你要调用的函数，可能会抛出某种异常
		}catch(你要捕捉的异常类型)
		{
			捕捉到异常之后，你需要如何处理，把处理的代码写在这里
		}
		注意的问题：
	       函数抛出的某种异常，catch后面必须要写上对应的异常类型
		      比如：函数抛出整型异常，catch就要捕捉整型异常
		   try里面的函数调用成功 --》catch不会执行
		                    失败，抛出了某种异常 --》catch才会执行
*/
int fun(int n)
{
	if(n>=0)
		return 0; //成功
	else
		throw -1; //抛出整型异常
}
int main()
{
	try  //尝试
	{
		//fun(12); //成功，catch不会执行
		fun(-12);  //失败，catch会执行
	}catch(int n)
	{
		cout<<"函数调用失败，fun抛出了整型异常，值是： "<<n<<endl;
	}
	cout<<"主函数继续往后执行"<<endl;
}